package com.flowplan.project.dto;

import com.flowplan.entity.enums.Priority;
import com.flowplan.entity.enums.ProjectStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * 项目响应DTO
 * 
 * @author FlowPlan Team
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ProjectResponse {
    
    /**
     * 项目ID
     */
    private Long id;
    
    /**
     * 项目名称
     */
    private String projectName;
    
    /**
     * 项目描述
     */
    private String description;
    
    /**
     * 项目状态
     */
    private ProjectStatus status;
    
    /**
     * 优先级
     */
    private Priority priority;
    
    /**
     * 创建人ID
     */
    private Long creatorId;
    
    /**
     * 创建人姓名
     */
    private String creatorName;
    
    /**
     * 截止时间
     */
    private LocalDateTime deadline;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
    
    /**
     * 待办任务统计
     */
    private TodoStats todoStats;
    
    /**
     * Excel计划数量
     */
    private Integer excelPlanCount;
    
    /**
     * 待办任务统计内部类
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TodoStats {
        /**
         * 总数
         */
        private Integer total;
        
        /**
         * 已完成
         */
        private Integer completed;
        
        /**
         * 进行中
         */
        private Integer inProgress;
        
        /**
         * 待处理
         */
        private Integer todo;
        
        /**
         * 阻塞
         */
        private Integer blocked;
    }
}